#include "katalog.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

Katalog creerKatalog(){
    Katalog katalog = NULL;
    katalog = malloc(sizeof(struct KatalogS));
    if ( NULL == katalog ){
        fprintf(stderr, "echec de création du katalog");
    }
    katalog->premierFichier = NULL;
    katalog->nbfich = 0;
    return katalog;
}


int ajouterNouveauFichier(Katalog katalog , char *arbo){
    pFichier  fichier;
    fichier = creerFichier();

    if (NULL == fichier)
    {
        fprintf(stderr, "erreur création fichier");
        return -1;
    }

    fichier->arborescence = copierChaine(arbo);

    fichier->suivant = katalog->premierFichier;

    if (NULL != katalog->premierFichier){
        katalog->premierFichier->precedent= fichier;
    }

    katalog->premierFichier = fichier;

    ++(katalog->nbfich);

    return 0;
}

int miseAJourFichier(Katalog katalog ,char *arbo)
{

}
int supprimerFichier(Katalog katalog ,char * arbo)
{

}

int fichierExiste(char *);
int exporterKatalog(char *);



pFichier creerFichier(){
    pFichier fichier = NULL;


    fichier = malloc(sizeof(struct Fichier));
    if (NULL == fichier)
    {
        fprintf (stderr, "erreur création pFichier");
        return fichier;
    }
    fichier->version = 1;
    fichier->suivant = NULL;
    fichier->precedent = NULL;
    return fichier;

}

char * copierChaine(char * chaine){
    int i, taille;
    char * retour = NULL;
    taille = strlen(chaine);
    retour = malloc(taille+1);
    if (NULL == retour){
        return retour;
    }
    for (i = 0; i <= taille; ++i){
        retour[i]=chaine[i];
    }
    return retour;
}

int listeKatalog(Katalog katalog){

    pFichier courant;

    if (katalog == NULL)
        return -1;
    if(0 == katalog->nbfich )
    {
        puts("katalog vide.");
    }
    else
    {
        courant = katalog->premierFichier;
        while(NULL != courant)
        {
            puts( courant->arborescence);
            courant = courant->suivant;
        }

    }
    return 0;
}

pFichier trouverFichier(Katalog katalog, char * arbo){
    pFichier courant = NULL;

    if (katalog == NULL)
        return NULL;
    if(0 == katalog->nbfich )
    {
        puts("katalog vide.");
    }
    else
    {
        courant = katalog->premierFichier;
        while(NULL != courant)
        {
            if (strcmp( courant->arborescence, arbo)){
                puts("trouvé");
                return courant;
            }
            puts( courant->arborescence);
            courant = courant->suivant;
        }

    }   
    return courant; 
}


